const Joi = require('joi');

/**
 * 详情
 * 验证必传值【_id】
 * _id：必填的字符串
 */
const _id = Joi.object().keys({
    _id: Joi.string().required()
});

/**
 * 用户新增
 * 验证必传值【用户名、密码、权限】
 * name：用户名。取值范围：大小写字母，数字，长度4-16位
 * pwd： 密码。  取值范围：大小写字母，数字，长度3-16位
 * name：用户名。取值范围：6位数字
 */
const userAdd = Joi.object().keys({
    name: Joi.string().regex(/^[a-zA-Z0-9]{3,30}$/).required(),
    pwd: Joi.string().regex(/^[a-zA-Z0-9]{3,30}$/).required(),
    region: Joi.number().integer().min(0).max(999999).required(),
});

/**
 * 用户编辑
 * 验证必传值【用户id、用户名、密码、权限】
 * name：用户名。取值范围：大小写字母，数字，长度4-16位
 * pwd： 密码。  取值范围：大小写字母，数字，长度3-16位
 * name：用户名。取值范围：6位数字
 */
const userEdit = Joi.object().keys({
    _id: Joi.string(),
    name: [Joi.string(), Joi.number()],
    pwd: [Joi.string(), Joi.number()],
    region: [Joi.string(), Joi.number()]
});

/**
 * 变电站查询
 * 验证【变电站名称、站点状态、电压等级、调度等级、站点类型、产权单位、运维单位】
 * short：变电站名称，数据类型：数组
 * status：变电站状态，数据类型：数组
 * voltage：电压等级，数据类型：数组
 * grade：调度等级，数据类型：数组
 * type：变电站类型，数据类型：数组
 * owner：产权单位，数据类型：数组
 * maintainer：运维单位，数据类型：数组
 */
const subSearch = Joi.object().keys({
    short: Joi.array(),
    status: Joi.array(),
    voltage: Joi.array(),
    grade: Joi.array(),
    type: Joi.array(),
    owner: Joi.array(),
    maintainer: Joi.array(),
    ctime: Joi.array()
});

//导出
const verifyWebParam = {
    _id,
    userAdd,
    userEdit,
    subSearch,
};
module.exports = verifyWebParam;